#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5;
int n,m,f[N<<2],tot,ans,root;
char s[N];
struct Trie{int son[2],cnt,sum;}t[N<<2];
inline void pushup(int p){
	f[p]=min(f[t[p].son[0]],f[t[p].son[1]])+1+t[p].cnt;
}
void down(int &p,int v){
	if(!p) p=++tot;
	t[p].cnt+=v,t[p].sum+=v;
	while(t[p].sum>=2&&t[p].cnt){
		--t[p].cnt;
		++ans;
		if(f[t[p].son[0]]<f[t[p].son[1]]) down(t[p].son[0],1);
		else down(t[p].son[1],1);
	}
	pushup(p);
}
void ins(int &p,int i){
	if(!p) p=++tot;
	++t[p].sum;
	if(i==m+1) return ++t[p].cnt,void();
	ins(t[p].son[s[i]-'0'],i+1);
}
void solve(int p){
	if(!p) return;
	solve(t[p].son[0]);
	solve(t[p].son[1]);
	down(p,0);
}
int main(){
	freopen("id.in","r",stdin);
	freopen("id.out","w",stdout);
	scanf("%d",&n);
	while(n--){
		scanf("%s",s+1);
		m=strlen(s+1);
		ins(root,1);
	}
	solve(root);
	cout<<ans;
	return 0;
}


